perm filename MOSZ.LSP[W79,JMC] blob
sn#411011 filedate 1979-01-15 generic text, type T, neo UTF8
;;; from phone conversations with Corky, 1-14-79
;;;f(x,y) ← if x = 0 then 0 else f(x-1,f(x+1,y))
;;;cn(x,xc,y,yc) ← 1 + (if x=0 then xz else cn(x-1,xc,f(x+1,y),cn(x+1,xc,y,yc)))
(SETQ BASE (SETQ IBASE 10.))
(DEFUN CF (X CX)
(PLUS 1.
(COND ((> X 100.) CX)
(T (CF (F (PLUS X 11.)) (CF (PLUS X 11.) CX))))))
(DEFUN F (X) (COND ((> X 100.) (- X 10.)) (T (F (F (+ X 11.))))))
(DEFUN CBNTAK (X Y Z) (CBNTAK1 X 0. Y 0. Z 0.))
(DEFUN CBNTAK1 (X M Y N Z P)
(ADD1 (COND ((≤ X Y) (+ M N))
(T (CBNTAK1 (TAK (SUB1 X) Y Z)
(CBNTAK1 (SUB1 X) M Y N Z P)
(TAK (SUB1 Y) Z X)
(CBNTAK1 (SUB1 Y) N Z P X M)
(TAK (SUB1 Z) X Y)
(CBNTAK1 (SUB1 Z) P X M Y N))))))
(DEFUN CBVTAK (X Y Z)
(PLUS 1.
(COND ((≤ X Y) 0.)
(T (PLUS (CBVTAK (TAK (SUB1 X) Y Z)
(TAK (SUB1 Y) Z X)
(TAK (SUB1 Z) X Y))
(CBVTAK (SUB1 X) Y Z)
(CBVTAK (SUB1 Y) Z X)
(CBVTAK (SUB1 Z) X Y))))))
(DEFUN TAK (X Y Z) (COND ((≤ X Y) Y) ((NOT (LESSP Z Y)) Z) (T X)))
;;;ctak(x,y,z) ← if x ≤ y then 1 else ctak(tak(x-1,y,z),tak(y-1,z,x),t
;;;ak(z-1,x,y))
;;;+ (if use1(tak(x-1,y,z),tak(y-1,z,x),tak(z-1,x,y)) then ctak(x-1,y,
;;;z) else 0)
;;;+ (if use2(tak(x-1,y,z),tak(y-1,z,x),tak(z-1,x,y)) then ctak(y-1,z,
;;;x) else 0)
;;;+ (if use3(tak(x-1,y,z),tak(y-1,z,x),tak(z-1,x,y)) then ctak(z-1,x,
;;;y) else 0)
(DEFUN CTAK2 (X Y Z)
(COND ((≤ X Y) 1.)
(T (PLUS 1.
(CTAK2 (TAK (SUB1 X) Y Z)
(TAK (SUB1 Y) Z X)
(TAK (SUB1 Z) X Y))
(CTAK2 (SUB1 X) Y Z)
(CTAK2 (SUB1 Y) Z X)
(COND ((USE3 (TAK (SUB1 X) Y Z)
(TAK (SUB1 Y) Z X)
(TAK (SUB1 Z) X Y))
(CTAK2 (SUB1 Z) X Y))
(T 0.))))))
(DEFUN USE3 (X Y Z) (< Y X))